<!DOCTYPE html>
<!-- Copyright 2018 Simon Marquis -->
<html lang="en">
<head>
  <title>App Store</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="author" content="Simon Marquis">
  <meta name="description" content="App Store">
  <meta name="theme-color" content="#4285F4">

  <link rel="icon" type="image/x-icon" href="favicon.ico" />
  <link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
  <link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16" />

  <link rel="manifest" href="manifest.json">

  <link href="index.css" rel="stylesheet">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

  <script defer src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
  <script defer src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
  <script defer src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>

  <script defer src="/__/firebase/9.17.2/firebase-app-compat.js"></script>
  <script defer src="/__/firebase/9.17.2/firebase-analytics-compat.js"></script>
  <script defer src="/__/firebase/9.17.2/firebase-auth-compat.js"></script>
  <script defer src="/__/firebase/9.17.2/firebase-database-compat.js"></script>
  <script defer src="/__/firebase/9.17.2/firebase-storage-compat.js"></script>
  <script defer src="/__/firebase/init.js"></script>
  <script src="https://www.gstatic.com/firebasejs/ui/6.0.2/firebase-ui-auth.js"></script>
  <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/6.0.2/firebase-ui-auth.css" />
  <script defer src="index.js"></script>

  <style type="text/css">html{width:100vw;overflow-x:hidden}body{padding-top:1.5rem;padding-bottom:1.5rem}</style>
</head>
<body>

  <template id="template-app-card">
    <div class="col">
      <div class="card m-2 card-selectable shadow-sm">
        <div class="card-img-wrapper">
          <img class="card-img" data-app-image onload="this.style.display=''" onerror="this.style.display='none'">
        </div>
        <div class="card-footer text-truncate text-center">
          <small class="text-muted" data-app-name></small>
        </div>
      </div>
    </div>
  </template>

  <template id="template-app-details">
    <div class="w-100" style="display: none;">
      <div class="card-header user-select-none">
        <div class="card-title text-secondary cursor-pointer" style="display:inline;" title="Back" data-app-back>
          <a class="text-secondary">
            <svg class="bi bi-chevron-left bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M13.354 3.646a.5.5 0 010 .708L7.707 10l5.647 5.646a.5.5 0 01-.708.708l-6-6a.5.5 0 010-.708l6-6a.5.5 0 01.708 0z" clip-rule="evenodd"/>
            </svg>
          <span class="h5 align-middle" data-app-name></span></a>
        </div>
        <div class="align-middle float-right">
          <a class="text-secondary cursor-pointer" title="Edit" data-app-action-edit hidden>
            <svg class="bi bi-three-dots-vertical bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M11.5 15a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm0-5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm0-5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z" clip-rule="evenodd"/>
            </svg>
          </a>
        </div>
      </div>
      <div class="card-body">
        <div class="card shadow-sm">
          <div class="card-body">
            <div class="row align-items-center">
              <div class="col-sm-3 text-center" data-app-image-drop>
                <div class="spinner-grow text-secondary" data-app-image-drop-spinner hidden style="position: absolute;" role="status">
                </div>
                <img class="card-img w-100 h-100" style="max-width: 150px;" draggable="false" data-app-image drop-zone onload="this.style.display=''" onerror="this.style.display='none'">
              </div>
              <div class="col-sm-9 remove-bottom-margin-on-last-item">
                <p data-app-description class="pre-wrap"></p>
                <div data-app-package-name class="mt-3">
                </div>
                <div data-app-links>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="list-group mt-3 shadow-sm" data-app-versions>
          <div class="list-group-item list-group-item-action user-select-none cursor-pointer text-muted" data-app-action-add-version hidden>
            <svg class="bi bi-plus bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M10 5.5a.5.5 0 01.5.5v4a.5.5 0 01-.5.5H6a.5.5 0 010-1h3.5V6a.5.5 0 01.5-.5z" clip-rule="evenodd"/>
              <path fill-rule="evenodd" d="M9.5 10a.5.5 0 01.5-.5h4a.5.5 0 010 1h-3.5V14a.5.5 0 01-1 0v-4z" clip-rule="evenodd"/>
            </svg>
            <span class="align-middle"> Add a version</span> 
          </div>
        </div>
      </div>
    </div>
  </template>

  <template id="template-app-link-outline">
    <a data-app-link class="btn btn-sm btn-outline-secondary no-wrap-ellipsis" target="_blank">🔗&nbsp;<span data-app-link-label></span></a>
  </template>

  <template id="template-app-modal">
    <div class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-body">
            <form class="was-validated">
              <div class="form-group">
                <label class="col-form-label">Name</label>
                <input type="text" class="form-control" autocomplete="off" required data-app-name>
              </div>
              <div class="form-group">
                <label class="col-form-label">Package name</label>
                <input type="text" class="form-control" autocomplete="off" required data-app-package-name>
              </div>
              <div class="form-group" data-app-description-root>
                <label class="col-form-label">Description</label>
                <textarea class="form-control" rows="3" data-app-description></textarea>
              </div>
              <div class="form-group" data-app-links-root>
                <label class="col-form-label">Links</label>
                <div class="input-group mb-1" data-app-link-1>
                  <input type="text" class="form-control text-truncate flex-03" autocomplete="off" placeholder="Title" data-app-link-1-name>
                  <input type="text" class="form-control text-truncate" autocomplete="off" placeholder="Value" data-app-link-1-uri>
                </div>
                <div class="input-group mb-1" data-app-link-2>
                  <input type="text" class="form-control text-truncate flex-03" autocomplete="off" placeholder="Title" data-app-link-2-name>
                  <input type="text" class="form-control text-truncate" autocomplete="off" placeholder="Value" data-app-link-2-uri>
                </div>
                <div class="input-group mb-1" data-app-link-3>
                  <input type="text" class="form-control text-truncate flex-03" autocomplete="off" placeholder="Title" data-app-link-3-name>
                  <input type="text" class="form-control text-truncate" autocomplete="off" placeholder="Value" data-app-link-3-uri>
                </div>
                <div class="input-group mb-1" data-app-link-4>
                  <input type="text" class="form-control text-truncate flex-03" autocomplete="off" placeholder="Title" data-app-link-4-name>
                  <input type="text" class="form-control text-truncate" autocomplete="off" placeholder="Value" data-app-link-4-uri>
                </div>
                <div class="input-group mb-1" data-app-link-5>
                  <input type="text" class="form-control text-truncate flex-03" autocomplete="off" placeholder="Title" data-app-link-5-name>
                  <input type="text" class="form-control text-truncate" autocomplete="off" placeholder="Value" data-app-link-5-uri>
                </div>
              </div>
              <div class="form-group">
                <label class="col-form-label">Image</label>
                <div class="custom-file">
                  <input type="file" accept="image/*" class="custom-file-input" data-app-image-input required>
                  <label class="custom-file-label text-truncate form-control" data-app-image-label></label>
                </div>
                <small class="form-text text-muted">Maximum file size: <b data-app-image-max-size></b></small>
              </div>
            </form>
          </div>
          <div class="modal-footer d-flex">
            <div class="progress w-100" data-app-progress hidden>
              <div class="progress-bar progress-bar-striped progress-bar-animated w-100" role="progressbar"></div>
            </div>
            <button type="button" class="btn btn-outline-danger mr-auto" data-app-delete>Delete</button>
            <button type="button" class="btn btn-outline-secondary" data-app-cancel data-dismiss="modal">Cancel</button>
            <div class="btn-group" role="group" data-app-create-group>
              <button type="button" class="btn btn-outline-primary" style="padding: 0rem 0.4rem;" data-app-silent title="Notification">
                <svg class="bi bi-bell-fill bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path d="M10 18a2 2 0 002-2H8a2 2 0 002 2zm.995-14.901a1 1 0 10-1.99 0A5.002 5.002 0 005 8c0 1.098-.5 6-2 7h14c-1.5-1-2-5.902-2-7 0-2.42-1.72-4.44-4.005-4.901z"/>
                </svg>
                <svg hidden class="bi bi-bell bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path d="M10 18a2 2 0 002-2H8a2 2 0 002 2z"/>
                  <path fill-rule="evenodd" d="M10 3.918l-.797.161A4.002 4.002 0 006 8c0 .628-.134 2.197-.459 3.742-.16.767-.376 1.566-.663 2.258h10.244c-.287-.692-.502-1.49-.663-2.258C14.134 10.197 14 8.628 14 8a4.002 4.002 0 00-3.203-3.92L10 3.917zM16.22 14c.223.447.482.801.78 1H3c.299-.199.557-.553.78-1C4.68 12.2 5 8.88 5 8c0-2.42 1.72-4.44 4.005-4.901a1 1 0 111.99 0A5.002 5.002 0 0115 8c0 .88.32 4.2 1.22 6z" clip-rule="evenodd"/>
                </svg>
              </button>
              <button type="button" class="btn btn-primary" data-app-create>Create</button>
            </div>
            <button type="button" class="btn btn-primary" data-app-update>Update</button>
          </div>
        </div>
      </div>
    </div>
  </template>

  <template id="template-version-modal">
    <div class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-body">
            <form class="was-validated">
              <div class="form-group">
                <label class="col-form-label">Name</label>
                <input type="text" class="form-control" autocomplete="off" data-version-name required>
                <small class="form-text text-muted">Follow <a href="https://semver.org/" target="_blank" class="text-secondary"><abbr title="Semantic Versioning">SemVer</abbr></a> specification: X.Y.Z</small>
              </div>
              <div class="form-group">
                <div class="d-flex">
                  <label>Description</label>
                  <a class="text-secondary cursor-pointer user-select-none ml-auto" title="Toggle preview" data-version-description-preview-toggle>
                    <svg class="bi bi-document-code bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                      <path fill-rule="evenodd" d="M6 3h8a2 2 0 012 2v10a2 2 0 01-2 2H6a2 2 0 01-2-2V5a2 2 0 012-2zm0 1a1 1 0 00-1 1v10a1 1 0 001 1h8a1 1 0 001-1V5a1 1 0 00-1-1H6z" clip-rule="evenodd"/>
                      <path fill-rule="evenodd" d="M10.646 7.646a.5.5 0 01.708 0l2 2a.5.5 0 010 .708l-2 2a.5.5 0 01-.708-.708L12.293 10l-1.647-1.646a.5.5 0 010-.708zm-1.292 0a.5.5 0 00-.708 0l-2 2a.5.5 0 000 .708l2 2a.5.5 0 00.708-.708L7.707 10l1.647-1.646a.5.5 0 000-.708z" clip-rule="evenodd"/>
                    </svg>
                    <svg hidden class="bi bi-document-richtext bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                      <path fill-rule="evenodd" d="M6 3h8a2 2 0 012 2v10a2 2 0 01-2 2H6a2 2 0 01-2-2V5a2 2 0 012-2zm0 1a1 1 0 00-1 1v10a1 1 0 001 1h8a1 1 0 001-1V5a1 1 0 00-1-1H6z" clip-rule="evenodd"/>
                      <path fill-rule="evenodd" d="M6.5 14a.5.5 0 01.5-.5h3a.5.5 0 010 1H7a.5.5 0 01-.5-.5zm0-2a.5.5 0 01.5-.5h6a.5.5 0 010 1H7a.5.5 0 01-.5-.5zm1.639-3.958l1.33.886 1.854-1.855a.25.25 0 01.289-.047L13.5 8v1.75a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5v-.5s1.54-1.274 1.639-1.208zM8.25 7a.75.75 0 100-1.5.75.75 0 000 1.5z" clip-rule="evenodd"/>
                    </svg>
                  </a>
                </div>
                <textarea class="form-control" rows="5" data-version-description></textarea>
                <div class="form-control border border-success pre-wrap" data-version-description-preview hidden style="height: auto;"></div>
                <small class="form-text text-muted">HTML tags allowed</small>
              </div>
              <div class="form-group">
                <label class="col-form-label">Timestamp</label>
                <div class="input-group">
                  <input type="number" class="form-control flex-04" autocomplete="off" data-version-timestamp required>
                  <input type="text" class="form-control" autocomplete="off" data-version-datetime required>
                  <div class="input-group-append user-select-none cursor-pointer" data-version-timestamp-now>
                    <span class="input-group-text">Now</span>
                  </div>
                </div>
                <small class="form-text text-muted" data-version-timestamp-label></small>
              </div>
              <div class="form-group">
                <div class="d-flex">
                  <label>APK</label>
                  <a class="text-secondary cursor-pointer user-select-none ml-auto" title="Toggle upload" data-version-apk-toggle>
                    <svg class="bi bi-gear bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                      <path fill-rule="evenodd" d="M8.505 2.93A.5.5 0 019 2.5h2a.5.5 0 01.495.43l.266 1.858c.234.079.46.173.68.282l1.502-1.127a.5.5 0 01.653.047l1.414 1.414a.5.5 0 01.047.653L14.93 7.56c.109.218.203.445.282.68l1.859.265A.5.5 0 0117.5 9v2a.5.5 0 01-.43.495l-1.858.266c-.079.234-.173.46-.282.68l1.127 1.502a.5.5 0 01-.047.653l-1.414 1.414a.5.5 0 01-.653.047L12.44 14.93a5.484 5.484 0 01-.68.282l-.265 1.859A.5.5 0 0111 17.5H9a.5.5 0 01-.495-.43l-.266-1.858a5.485 5.485 0 01-.68-.282l-1.502 1.127a.5.5 0 01-.653-.047L3.99 14.596a.5.5 0 01-.047-.653L5.07 12.44a5.467 5.467 0 01-.282-.68l-1.859-.265A.5.5 0 012.5 11V9a.5.5 0 01.43-.495l1.858-.266c.079-.234.173-.46.282-.68L3.943 6.058a.5.5 0 01.047-.653L5.404 3.99a.5.5 0 01.653-.047L7.56 5.07c.218-.109.445-.203.68-.282l.265-1.859zm5.834 9.556l-.433-.25c.188-.328.337-.682.438-1.056a.5.5 0 01.412-.364l1.744-.25V9.434l-1.744-.25a.5.5 0 01-.412-.364 4.472 4.472 0 00-.438-1.057.5.5 0 01.033-.549l1.058-1.41-.801-.8-1.41 1.057a.5.5 0 01-.55.033 4.47 4.47 0 00-1.056-.438.5.5 0 01-.364-.412l-.25-1.744H9.434l-.25 1.744a.5.5 0 01-.364.412 4.47 4.47 0 00-1.057.438.5.5 0 01-.549-.033l-1.41-1.058-.8.801 1.057 1.41a.5.5 0 01.033.55 4.47 4.47 0 00-.438 1.056.5.5 0 01-.412.364l-1.744.25v1.132l1.744.25a.5.5 0 01.412.364c.101.374.25.728.438 1.057a.5.5 0 01-.033.549l-1.058 1.41.801.8 1.41-1.057a.5.5 0 01.55-.033c.328.188.682.337 1.056.438a.5.5 0 01.364.412l.25 1.744h1.132l.25-1.744a.5.5 0 01.364-.412 4.49 4.49 0 001.057-.438.5.5 0 01.549.033l1.41 1.058.8-.801-1.057-1.41.4-.3z" clip-rule="evenodd"/>
                      <path fill-rule="evenodd" d="M7.5 10a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0zM10 8.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z" clip-rule="evenodd"/>
                    </svg>
                  </a>
                </div>
                <div>
                  <div class="custom-file">
                    <input type="file" accept="application/vnd.android.package-archive" class="custom-file-input" data-version-apk-input required>
                    <label class="custom-file-label form-control text-truncate" data-version-apk-label></label>
                  </div>
                  <small class="form-text text-muted">Maximum apk size: <b data-version-apk-max-size></b></small>
                </div>
                <input type="text" class="form-control" autocomplete="off" placeholder="URL" data-version-apk-url required hidden>
              </div>
            </form>
          </div>
          <div class="modal-footer d-flex">
            <div class="progress w-100" data-version-progress hidden>
              <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 0%"></div>
            </div>
            <button type="button" class="btn btn-outline-danger mr-auto" data-version-delete>Delete</button>
            <button type="button" class="btn btn-outline-secondary" data-version-cancel data-dismiss="modal">Cancel</button>
            <div class="btn-group" role="group" data-version-create-group>
              <button type="button" class="btn btn-outline-primary" style="padding: 0rem 0.4rem;" data-version-silent title="Notification">
                <svg class="bi bi-bell-fill bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path d="M10 18a2 2 0 002-2H8a2 2 0 002 2zm.995-14.901a1 1 0 10-1.99 0A5.002 5.002 0 005 8c0 1.098-.5 6-2 7h14c-1.5-1-2-5.902-2-7 0-2.42-1.72-4.44-4.005-4.901z"/>
                </svg>
                <svg hidden class="bi bi-bell bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path d="M10 18a2 2 0 002-2H8a2 2 0 002 2z"/>
                  <path fill-rule="evenodd" d="M10 3.918l-.797.161A4.002 4.002 0 006 8c0 .628-.134 2.197-.459 3.742-.16.767-.376 1.566-.663 2.258h10.244c-.287-.692-.502-1.49-.663-2.258C14.134 10.197 14 8.628 14 8a4.002 4.002 0 00-3.203-3.92L10 3.917zM16.22 14c.223.447.482.801.78 1H3c.299-.199.557-.553.78-1C4.68 12.2 5 8.88 5 8c0-2.42 1.72-4.44 4.005-4.901a1 1 0 111.99 0A5.002 5.002 0 0115 8c0 .88.32 4.2 1.22 6z" clip-rule="evenodd"/>
                </svg>
              </button>
              <button type="button" class="btn btn-primary" data-version-create>Create</button>
            </div>
            <button type="button" class="btn btn-primary" data-version-update>Update</button>
          </div>
        </div>
      </div>
    </div>
  </template>

  <template id="template-version-item">
    <div class="list-group-item list-group-item-action flex-column align-items-start cursor-pointer" drop-zone>
      <div class="d-flex w-100 justify-content-between">
        <h5 class="mb-0" data-version-name></h5>
        <div class="user-select-none">
          <small class="text-muted" data-version-timestamp auto-timestamp></small>
          <a data-version-apk class="align-middle ml-2 text-secondary cursor-pointer" style="text-decoration: none;" target="_blank">
            <svg class="bi bi-download bi-size-25" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
              <path fill-rule="evenodd" d="M2.5 10a.5.5 0 01.5.5V14a1 1 0 001 1h12a1 1 0 001-1v-3.5a.5.5 0 011 0V14a2 2 0 01-2 2H4a2 2 0 01-2-2v-3.5a.5.5 0 01.5-.5z" clip-rule="evenodd"/>
              <path fill-rule="evenodd" d="M7 9.5a.5.5 0 01.707 0L10 11.793 12.293 9.5a.5.5 0 01.707.707l-2.646 2.647a.5.5 0 01-.708 0L7 10.207A.5.5 0 017 9.5z" clip-rule="evenodd"/>
              <path fill-rule="evenodd" d="M10 3a.5.5 0 01.5.5v8a.5.5 0 01-1 0v-8A.5.5 0 0110 3z" clip-rule="evenodd"/>
            </svg>
          </a>
        </div>
      </div>
      <p class="mb-0 mt-2 pre-wrap" data-version-description></p>
      <div class="progress mt-2 w-100" data-version-progress hidden>
        <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 0%"></div>
      </div>
    </div>
  </template>

  <template id="template-alert">
    <div class="alert alert-dismissible fade m-2" role="alert">
      <div data-alert-message></div>
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
  </template>

  <div class="container">

    <div class="card bg-light shadow">

      <div class="card-header user-select-none">
        <nav class="navbar navbar-expand navbar-light">
          <img id="logo" src="logo-resized.png" class="navbar-brand mr-0 cursor-pointer" alt="Logo">
          <div class="navbar-brand text-secondary no-wrap-ellipsis mr-auto ml-4" id="title">App Store<br><a id="subtitle" href="https://github.com/SimonMarquis/" target="_blank" class="text-muted">@SimonMarquis</a></div>
          <div class="navbar-nav ml-auto">
            <div class="nav-item dropdown cursor-pointer">
              <a id="user-details" class="nav-link disabled" role="button" data-toggle="dropdown" disabled hidden>
                <svg class="bi bi-person-fill bi-size-25" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path fill-rule="evenodd" d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd"/>
                </svg>
              </a>
              <div class="dropdown-menu dropdown-menu-right">
                <h6 id="user-email" class="dropdown-header"></h6>
                <div class="dropdown-divider"></div>
                <a id="pwa" class="dropdown-item" hidden>Progressive Web App</a>
                <a id="user-resend-verification-email" class="dropdown-item text-warning" hidden>Send verification email</a>
                <a id="user-reset-password" class="dropdown-item">Reset password</a>
                <a id="user-login" class="dropdown-item">Sign in</a>
                <a id="user-logout" class="dropdown-item">Log out</a>
              </div>
            </div>
          </div>
        </nav>

        <div id="alert-container"></div>
      </div>

      <div id="loader" class="spinner-grow text-secondary" role="status"><span class="sr-only">Loading…</span></div>

      <div id="firebaseui-auth-container" class="card-body" hidden></div>

      <div>
        <div id="apps-cards" class="card-body user-select-none row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5" hidden>

          <div id="new-app-card" class="col" hidden>
            <div class="card m-2 card-selectable">
              <a class="text-muted card-img-wrapper">
                <svg class="bi bi-plus" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                  <path fill-rule="evenodd" d="M10 5.5a.5.5 0 01.5.5v4a.5.5 0 01-.5.5H6a.5.5 0 010-1h3.5V6a.5.5 0 01.5-.5z" clip-rule="evenodd"/>
                  <path fill-rule="evenodd" d="M9.5 10a.5.5 0 01.5-.5h4a.5.5 0 010 1h-3.5V14a.5.5 0 01-1 0v-4z" clip-rule="evenodd"/>
                </svg>
              </a>
              <div class="card-footer text-truncate text-center">
                <small class="text-muted">New application</small>
              </div>
            </div>
          </div>

        </div>
      </div>

      <div id="apps-details"></div>

    </div>

  </div>

  <!-- https://github.com/tholman/github-corners -->
  <a href="https://github.com/SimonMarquis/InternalAppStore" class="github-corner" title="View source on Github">
    <svg width="80" height="80" viewBox="0 0 250 250" style="fill:#4285F4; color:#fff; position: absolute; top: 0; border: 0; left: 0; transform: scale(-1, 1);" aria-hidden="true">
      <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
      <path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
      <path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
    </svg>
    <style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
  </a>

</body>
</html>
